package _220318;

import java.util.Scanner;

/**
 * @author ShadowLim
 * @create 2022-03-18-8:23
 */
public class _包子凑数 {
    /**
     * 解题思路：若每个抽屉的容量不互质，则不能表达的数有INF，
     * 若互质，则利用完全背包的思路解决，具体参看代码注释。
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] baozi = new int[n];
        int[] dp = new int[100 * 100 + 5];   // 值为1 ：可以凑出 	0 ： 不可以凑出
        for (int i = 0; i < n; i++) {
            baozi[i] = scanner.nextInt();
        }
        scanner.close();
        int g = baozi[0];
        for (int i = 1; i < n; i++) {
            g = gcd(g, baozi[i]);
        }
        // 若两个数不互质 则表示不出来的数有无限个
        if (g != 1) {
            System.out.println("INF");
            return;
        }
        dp[0] = 1;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j + baozi[i] < 100 * 100 + 5; j++) {
                // j个包子能够从凑出来 ， j + 任何容量的笼子包子数都能凑出来
                if (dp[j] == 1) {
//                    dp[j + baozi[i]] = 1;
                    // 优化
                    if (dp[j + baozi[i]] == 1) {
                        continue;
                    } else {
                        dp[j + baozi[i]] = 1;
                    }
                }
            }
        }
        // 凑不出来的包子数
        int cnt = 0;
        for (int i = 0; i < 100 * 100 + 5; i++) {
            if (dp[i] != 1) {
                cnt++;
            }
        }
        System.out.println(cnt);
    }

    private static int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
}
